package com.itheima.config;

import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

/**
 *  这就是用来替代配置文件
 *     SqlMapConfig.xml
 */
public class MyBatisConfig {
    /**
     *  那些内容整合到spring中
     *       配置文件的文件读取
     *       连接池
     *       以上两个 上节课已经完成
     *
     *       sqlSessionFactory 需要交给spring管理
                 配置完工厂 相当于
                dao  sqlSession对象都交给spring
                需要的时候去spring要就行了！

            MapperScan
             mapper文件的扫描

           因为 spring可以集成第三方的jar包，他市场拥有率是极高的
            他可以集成第三方，需要第三方去实现一些关联的接口。

        mybatis公司  重新写了一套 jar包 mybatis-spring
                工厂
           SqlSessionFactoryBean

               如何去完成mapper文件的扫描
          MapperScannerConfigurer  用于专门扫描 mapper文件的配置类

     */
    @Bean
    public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource){

        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();

        sqlSessionFactoryBean.setDataSource(dataSource);

        sqlSessionFactoryBean.setTypeAliasesPackage("com.itheima.domain");

        return sqlSessionFactoryBean;
    }

    @Bean
    public MapperScannerConfigurer getMapperScannerConfigurer(){

        MapperScannerConfigurer msc = new MapperScannerConfigurer();

        msc.setBasePackage("com.itheima.dao");

        return msc;

    }



}
